home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
3D GFX
/
3D GFX.iso
/
amiutils
/
m_p
/
polywog
/
wog188.doc
< prev
next >
Wrap
Text File
|
1995-12-30
|
16KB
|
525 lines
---------------------------
PolyWog, a simple 3D editor
Version 1.88 Documentation
(C) 1995 Ben Discoe
---------------------------
If you like this program, or find problems, or want more features, or
even find it vaguely interesting, please let me know! Send email to
iguana@crl.com!
The main purpose of this program is to play with polyhedra and "geodesic"
structures. However, it is fairly general-purpose so you could use it
for any sort of polygonal 3D modelling/world-design.
*****************************************************************************
F E A T U R E S
* Creates and edits 3D polygonal objects
* Start from a wide variety of regular polyhedra
* Cut, Copy, Paste, Rotate, Scale, and Stretch
* Extrude and Stellate
* Surfaces of Revolution
* Reads and writes GEO, Sense8 NFF, and PLG format files
* Writes POV-ray triangle files
* Detach and attach polygonal meshes
* Zoom in or out
* Grid and grid snap
* Tons of keyboard shortcuts so you don't HAVE to use the GUI
* Tesselates arbitrary triangles and quadrilaterals to any frequency
* Constructs the dual of any closed polyhedron
* Removes redundant vertices or polygons
* Measure distances
* Unlimited Undo and Redo!
* Hide and unhide any part of the object while you're working on it
*****************************************************************************
B U T T O N S
VERTEX ADD
Puts you in Add Vertex mode. Click to add vertices anywhere.
They will their third coordinate as zero (no depth).
VERTEX DELETE
Puts you in Delete Vertex mode. Click to delete vertices.
Polywog will prevent you from deleting verts which are being used by
polygons or lines.
VERTEX SELECT
Puts yoy in Select Vertex mode. In this mode, clicking on a vertex
will toggle its selection. Double-click will do a select-connected
from the indicated vertex.
VERTEX MOVE0
Puts you in Move Single Vertex mode. Click and drag to move a vertex.
CREATE POLY / POLY3 / POLY4 / LINE
Puts you in Create mode.
For a polygon, click on each of the vertices, ending with the first
vertex. For "POLY3" and "POLY4", Polywog knows that you want a 3- or
4-sided polygon, so you don't have to end with the first vertex.
For a line, just click on two vertices.
DESTROY POLY / POLY3 / POLY4 / LINE
Puts you in Destroy mode.
For a polygon, click on each of the vertices, ending with the first
vertex. For "POLY3" and "POLY4", Polywog knows that you want a 3- or
4-sided polygon, so you don't have to end with the first vertex.
For a line, just click on two vertices.
SELECTION STRETCH
In Stretch mode, hold down the mouse and drag to stretch the selected
geometry in the two dimensions that the mouse is moving in.
Stretching is performed around the selection center.
SELECTION MOVE
In Move mode, hold down the mouse and drag to move the selected
geometry in the two dimensions that the mouse is moving in.
Holding down SHIFT will snap the starting and ending points to the
nearest vertices. This can be extremely useful for lining up parts
of an object.
SELECTION SCALE
Scaling is exactly like stretching except that the all three
dimensions are sretched by the same factor.
SELECTION ROTATE
In Rotate mode, click to define the point to rotate around, hold
down the mouse and drag to define the amount of rotation. Let go
and the selection will rotate.
SELECTION SET COLOR
Hitting this button will set all selected polys to the current color.
AREA SELECT
In Area Select mode, drag to define a box. All visible vertices in
the box will be selected. Unless you hold down SHIFT to extend the
selection, all vertices outside the box will be deselected.
AREA DESELECT
In Area Deselect mode, drag to define a box. All visible vertices
in the box will be deselected.
AREA ZOOM INTO
In Area Zoom mode, drag to define a box. You will zoom in to view
only the geometry in the box.
VIEW FRONT / SIDE / TOP
Indicates which view.
VIEW FAKE 3D
Adds an orthographic slant to your view. This is useful for getting
a sense of depth for telling apart the front and back of objects.
You can still do ALL editing in this mode.
Viewing your object from a true 3D perspective requires a separate
program, either realtime or nonrealtime, such as WorldToolKit or
POV-Ray. Nonetheless, it is often useful to have a "fake"
orthogonal slant, as a conceptual or selection aid.
ZOOM
Lets you change the degree of magnification. In Zoom mode, click
the first button to zoom in towards a location, second button to
zoom out away from a location.
GLUE
Glue will "merge" the the point closest to the pointer and the
point closest to it. All degenerations are handled correctly.
REFERENCE LINE
The Reference Line tool is a "ruler" for measuring distance in
3D space. Both ends can be dragged around, or "attached" to points
by double-clicking near the intended point. The distance (length
of the reference line) appears in the upper right corner.
PICK COLOR
Not implemented yet. Will set the current color.
UNDO / REDO
You should be able to Undo and Redo ANY operation. If you find a
bug in Undo/Redo, let me know. It's a fairly tricky feature.
It's also fairly uncommon in 3d editors. Heck, 3D Studio for $3500
doesn't even have SINGLE-LEVEL UNDO.
GRID
Toggle the visible grid.
SNAP
Toggle snapping to the snap grid.
*****************************************************************************
M E N U S
PROJECT
-------
Load and Save
These are self-descriptive.
Clear
Deletes all geometry from the current object.
Save Defaults
Saves the settings of the "Options" menu to a file called wog.opt,
which is automatically loaded the next time you start.
EDIT
----
Note: there is no "real" clipboard support yet. Cut, Copy and Paste
work by using a temporary Polywog object called "Clipboard".
Duplicate
Makes an exact in-place copy of all selected vertices,
polygons, and lines. You should probably move the duplicated
geometry right after, so that you don't forget where there is
duplicate geometry.
Erase
Kills the selected vertices, polygons, and lines.
Detach Selection
Will "detach" the selected geometry from the unselected. Extras
vertices are created as necessary, so that no vertices are shared
between the selected and unselected geometry.
Select All
Selects all vertices.
Select Connected
Selects all verts which share polygons/lines with selected verts.
Deselect All
Deselects all vertices.
Cut as a new object
The selected vertices, polygons and lines will be removed from the
current object and used to create a new object.
Copy as a new object
Same as Cut as a new object, except that the geometry isn't deleted.
Affect Verts Only
If set, Duplicate and Delete will only duplicate/delete vertices,
not polys or lines.
Affect Polys Only
If set, Duplicate and Delete will only duplicate/delete polys and
lines.
Require All Verts
If set, poolygons and lines will be considered selected only if all
their vertices are selected. Otherwise, they are considered selected
if any of their vertices are selected.
VIEW
----
Zoom All
Adjusts the Zoom factor so that all visible geometry fits in the
view.
Zoom In / Zoom Out
Zooms in/out by 20%. The shortcuts 'z' and 'Z' may be more useful
because they zoom in/out around the point under the pointer.
Zoom to Selection
Adjusts the Zoom factor so that all selected geometry fits in the
view.
Zoom Reset
Restores the Zoom to 1 unit = 1 pixel.
There is no standard on which way the X, Y, and Z axes point. Polywog
lets you choose between several popular schemes:
VR386/Vscape Axes
WorldToolKit Axes
AutoCAD Axes
Show Only Selection
Hides any unselected geometry.
Hide Selection
Hides any selected geometry.
Show Everything
Un-hides all geometry.
Hide Backfaces
doesn't currently work very well
Set View Colors...
Lets you set which colors are used for polygons, vertices, lines, the
window background, etc.
POLYHEDRA
---------
Tetrahedron
Octahedron
Cube
Icosahedron
Dodecahedron
(rhombic Dodecahedron)
Cuboctahedron
Globe
Torus
Cylinder
Box (xyz)
These are some basic polyhedra. You can use them as starting points
for constructing really wild, complex polyhedra using Polywog's
special features. All polyhedra are created initially centered
around the origin.
OPERATIONS
----------
Vertex at Center
Creates a new vertex in the center of the object or selection. Very
useful for finding midpoints of faces or solids, bisecting lines and
angles, etc.
Stellate...
This will take every face and make a pyramid out of it, giving a "3D
star" based on whatever shape you are using. Combining this feature
with "Find Dual" can be used to form truncated forms of polyhedra.
Try it.
Extrude...
Extrude the selected polygons in the indicated direction.
Frequency Tesselation...
This is one of the two Really Neat features of Polywog.
This will divide each triangular (or quadrilateral) face into a set
of smaller triangles, where the number of resultant triangles is frequency
squared. Try this on your favorite polyhedra, then Normalize to get
pseudo-geodesic structures. The reason why I say psuedo is because if you
use this method with any ODD frequency, the resulting location of vertices
does not truly correlate to subdiving the geodesicic arcs described by the
polyhefron edges. It is, however, very close. You could theoretically
raise a form to any large frequency, although you are, naturally, limited
by your memory size.
Flip/Swap XYZ...
Invert or exchange the X, Y, Z values of the selection (or object, if
nothing is selected). Useful for creating the "mirror" of some
geomtry or converting from one axis convention to another.
Spin (Surface of Revolution)...
The selected lines are spun around the vertical axis to create a
polygonal surface.
Normalize
This finds the center of all points and adjusts all points to lie the
average distance from that center. Simply stated, it makes all
points Spherical. One use is to project flat tesselated faces onto
their geodesic arcs.
Object Center->Origin
Moves all points so that their vector sum is centered on the origin.
Set Clockwisdom of Polys
Most rendering systems determine the front and back faces of a
polygon by considering whether the vertices are clockwise or
counterclockwise. In case an object has inconsistent ordering, you
can use this operation to set the clockwisdom of all polygons to be
the same. Note that this assumes the object is convex and centered
at the origin.
Subdivide Quads
Splits all 4-sided polygons into triangles.
Subdivide Nonplanar Polys
Splits all non-planar polygons into triangles.
Merge Redundant Vertices
Finds all redundant vertices (two vertices at the exact same point in
space) and joins them.
Remove Redundant Polys
Finds all redundant polys (two polys connecting the exact same
vertices) and removes the extra poly in each case.
Unfold
Generate Convex Hull
These are future Really Neat Features.
Create Dual as new object
This is the second Really Neat feature.
Every fully-connected polyhedron has a dual, which is formed by
exchanging the configuration of faces with vertices. For example, the
cube's dual is the octahedron, and the icosahedron's dual is the pentagon
dodecahedon. Complex geodesic structures also have their duals, which are
typically complex "fly's eye" structures involving many hexagons.
Naturally, a dual of a dual is the original shape.
OPTIONS
-------
Display Coordinates
Toggle display of the current X,Y,Z location.
Display Crosshair
Gives you a "+" crosshair, useful for lining up parts of an object.
You can set the color of the crosshair with "Set View Colors" under
the VIEW menu.
Display Axes
Toggle display of the X, Y, and Z axes.
Display Object List
Toggle display of a list of all objects in a seperate window.
Reference Line
Toggle display of the reference line.
Undo Buffer Active
Toggle whether Undo is turned on for the current object.
Grid On
Toggle display of the visible grid.
Snap cursor to Grid
Toggle snapping of the cursor to the snap grid (which can be
different from the visible grid).
Poly Normals / Vertex Normals
Ignore these menu items.
Display options...
Sets options having to do with the display:
Visible grid size
Snap grid size
Display grid as dots or lines
How to display geometry when you'rre dragging it
More options...
Sets other options:
Rotation constraint
Scale/Stretch contraint
Definition of object "center"
"Undo buffer size" affects the undo buffer only at the next time you
start Polywog - it doesn't change or damage your current undo
buffer.
"Assume a polyhedron" tell the features on the Special menu (notably
Find Dual and Normalize) to assume that the shape you're working
with is a polyhedron. Set this option whenever you DO have a
polyhedron.
*****************************************************************************
K E Y B O A R D S H O R T C U T S
a - Area: space bar - full refresh
s - Select c - Vertex at center
d - Deselect d - toggle Ref line
z - Zoom into f - Front view
F - Fake 3D view
3 - 3-sided poly: 4 - 4-sided poly:
a - Add a - Add
d - Delete d - Delete
g - toggle Grid i - Info
G - toggle Grid-snap j - Zoom to selection
l - Line: p - Poly:
a - Add a - Add
d - Delete d - Delete
m - Move mode n - Next object
o - toggle Objectlist q - Quit
r - Rotate s - Side view
v - Vertex: t - Top view
a - Add u - Undo
d - Delete U - Redo
s - Select backspace - kill selected
m - Move z - zoom in
x - toggle Crosshair Z - zoom out
Esc - deselect/select All ~ - cycle palette
SHIFT can be used to extend selection in area-select mode.
*****************************************************************************
About the Author
----------------
I originally wrote this program while dropping out of Caltech, due to
spending too much time with my hobby, 3D geometry, which no one was
interested in teaching me about. Much of the original coding was done
during a few months of unemployment in Berkeley in early summer 1990.
Since then I've been doing small amounts of additional work on weekends,
and ported it to the Macintosh and MS Windows.
I am currently (1/13/95) reachable at iguana@crl.com.
******************
Amiga version notes
Before running: make sure you have the reqtools.library in your LIBS:
directory. It may be included in this archive case you don't have it
already.
There are some command line options from a CLI:
-c to run on a custom screen (default)
-m to run on the default display (workbench screen)
-sm to make the custom screen medium-res
-sp to use the workbench palette
Sorry, Workbench fans, no ToolTypes stuff.
Polywog also doesn't run under AmigaOS V1.3.
******************
H I S T O R Y
Version 1.88
------------
Added POV triangle output
Fixed "Subdivide quads" to preserve colors.
Mlib now converts "*" to "#?" for show-pattern, for Amiga users who
aren't using "*" as their wildcard.
The Remove Redundant Polys function now shows the percent done.
Rotate now shows the actual rotation on-sceen (rubber-bands just like
movement).
Duplicate Selection now states the # of verts copied.
Cylinder constructor now uses radio buttons.
Added key to toggle fake3D.
Zoom in/out menus (used to be key shortcut only)
Undo buffer now stays on by default
Mlib was changed so that custom screens open to default "Text
Overscan" size, not the size of the Workbench screen.
Wrote documentation.
Version 1.87
------------
Sent for beta-testing to 18 people. People wanted more file formats
and closer adherence to the Amiga Style Guide. Nobody reported bugs!
*************
Legal Baloney
See the file "license.wog" for the legal status of Polywog and terms
under which you can use it. To summarize here, you can copy and use it
freely, but all liability is disclaimed blah blah blah.